<template>
  <h4>当前求和为：{{sum}}</h4>
  <button @click="sum++">点我++</button>
  <hr>
  <h2>姓名：{{name}}</h2>
  <h2>年龄：{{age}}</h2>
  <h2>薪资：{{job.j1.salary}}K</h2>
  <button @click="name+='~'">修改姓名</button>
  <button @click="age++">增长年龄</button>
  <button @click="job.j1.salary++">涨薪</button>
</template>
  
<script>
  import {ref,reactive,toRef,toRefs,readonly,shallowReadonly} from 'vue'
  export default {
    name: 'Demo',
    setup(props,context){
      // 数据
      let sum = ref(0)
      let person = reactive({
        name: '张三',
        age: 18,
        job: {
          j1: {
            salary: 20
          }
        }
      })


      // person = readonly(person) // person对象所有层次的数据都是只读的 
      person = shallowReadonly(person) // person对象第一层次的数据是只读的

      sum = readonly(sum) // 数据只读
      // 深层次的数据只读，这里sum是一个基本数据类型，这样写和readonly效果一样，但是没必要
      // sum = shallowReadonly(sum) 



      // 返回一个对象（常用）
      return {
        sum,
        ...toRefs(person) // 这里只能将person下的第一层key拆出来
      }
  
    }
  
  }
  </script>
  
  
  